import java.util.ArrayList;
import java.util.List;

public class SolutionLCP23 {
    public boolean isMagic(int[] target) {
        List<Integer> list=new ArrayList<>();
        for (int i = 0; i < target.length; i++) {
            list.add(i+1);
        }
        List<Integer> l2=shuffle(list);
        int max=0;
        for (int i=0;i<l2.size();i++){
            if (l2.get(i)==target[i]){
                max++;
            }else {
                break;
            }
        }
        if (max==0){
            return false;
        }
        if (max==list.size()){
            return true;
        }
        return check(list,max,target);
    }

    private boolean check(List<Integer> list, int k, int[] target) {
        int now=0;
        while (!list.isEmpty()){
            list=shuffle(list);
            for (int i=0;i<k && !list.isEmpty();i++){
                if (list.remove(0)!=target[now++]){
                    return false;
                }
            }
        }
        return true;
    }

    List<Integer> shuffle(List<Integer> list){
        List<Integer> ans=new ArrayList<>();
        for (int i=1;i<list.size();i+=2){
            ans.add(list.get(i));
        }
        for (int i=0;i<list.size();i+=2){
            ans.add(list.get(i));
        }
        return ans;
    }

    public static void main(String[] args) {
        System.out.println(new SolutionLCP23().isMagic(new int[]{2,4,3,1,5}));
    }
}
